{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "flexible-terry",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.47143516 -1.19097569  1.43270697 -0.3126519  -0.72058873  0.88716294\n",
      "  0.85958841 -0.6365235   0.01569637 -2.24268495]\n",
      "[ 0.47143516 -1.19097569  1.43270697 -0.3126519  -0.72058873  0.88716294\n",
      "  0.85958841 -0.6365235   0.01569637 -2.24268495]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['BitGenerator',\n",
       " 'Generator',\n",
       " 'MT19937',\n",
       " 'PCG64',\n",
       " 'Philox',\n",
       " 'RandomState',\n",
       " 'SFC64',\n",
       " 'SeedSequence',\n",
       " '__RandomState_ctor',\n",
       " '__all__',\n",
       " '__builtins__',\n",
       " '__cached__',\n",
       " '__doc__',\n",
       " '__file__',\n",
       " '__loader__',\n",
       " '__name__',\n",
       " '__package__',\n",
       " '__path__',\n",
       " '__spec__',\n",
       " '_bit_generator',\n",
       " '_bounded_integers',\n",
       " '_common',\n",
       " '_generator',\n",
       " '_mt19937',\n",
       " '_pcg64',\n",
       " '_philox',\n",
       " '_pickle',\n",
       " '_sfc64',\n",
       " 'absolute_import',\n",
       " 'beta',\n",
       " 'binomial',\n",
       " 'bytes',\n",
       " 'chisquare',\n",
       " 'choice',\n",
       " 'default_rng',\n",
       " 'dirichlet',\n",
       " 'division',\n",
       " 'exponential',\n",
       " 'f',\n",
       " 'gamma',\n",
       " 'geometric',\n",
       " 'get_state',\n",
       " 'gumbel',\n",
       " 'hypergeometric',\n",
       " 'laplace',\n",
       " 'logistic',\n",
       " 'lognormal',\n",
       " 'logseries',\n",
       " 'mtrand',\n",
       " 'multinomial',\n",
       " 'multivariate_normal',\n",
       " 'negative_binomial',\n",
       " 'noncentral_chisquare',\n",
       " 'noncentral_f',\n",
       " 'normal',\n",
       " 'pareto',\n",
       " 'permutation',\n",
       " 'poisson',\n",
       " 'power',\n",
       " 'print_function',\n",
       " 'rand',\n",
       " 'randint',\n",
       " 'randn',\n",
       " 'random',\n",
       " 'random_integers',\n",
       " 'random_sample',\n",
       " 'ranf',\n",
       " 'rayleigh',\n",
       " 'sample',\n",
       " 'seed',\n",
       " 'set_state',\n",
       " 'shuffle',\n",
       " 'standard_cauchy',\n",
       " 'standard_exponential',\n",
       " 'standard_gamma',\n",
       " 'standard_normal',\n",
       " 'standard_t',\n",
       " 'test',\n",
       " 'triangular',\n",
       " 'uniform',\n",
       " 'vonmises',\n",
       " 'wald',\n",
       " 'weibull',\n",
       " 'zipf']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "# 1. 正态分布\n",
    "a = np.random.normal(size=(4,4))\n",
    "\n",
    "# 2. np.random是伪随机，根据seed值做运算，确定了seed，每次都是一样的\n",
    "np.random.seed(1234)\n",
    "a = np.random.randn(10)\n",
    "np.random.seed(1234)\n",
    "b = np.random.randn(10)\n",
    "print(a)\n",
    "print(b)\n",
    "\n",
    "# 3. random中的其他函数\n",
    "dir(np.random)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "burning-gravity",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-42\n",
      "7\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f934c3f51c0>]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 1. 价格或者上升，或者下降，是随机的。模拟1000次股票波动的曲线。\n",
    "draws = np.random.randint(0,2, size=1000)\n",
    "moves = np.where(draws > 0, 1, -1)\n",
    "walk = moves.cumsum()\n",
    "print(walk.min())\n",
    "print(walk.max())\n",
    "import matplotlib.pyplot as plt\n",
    "plt.plot(walk)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "veterinary-minute",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
